1. The Field of the Invention
This invention relates to the field of Internet services. In particular, the invention relates to a technique for sharing the resources of a network of computers to provide Internet hosting and access services.
2. Background Information
Internet Service Providers (ISPs) provide, among other services, World Wide Web (web) hosting services. The hosting services allow users to set up web sites on computers owned by an ISP. Thus, users can provide the content for the web sites without having to build the underlying computer and network architecture to support the content and bandwidth requirements.
Previous implementations use one computer to support one web site. For example, one Windows NT computer would be associated with one domain name and one corresponding IP address. This system is particularly expensive because each site requires a different computer. It also does not support load balancing. Load balancing allows surges in client accesses of web sites to be distributed across multiple computers or allows computers to off load other services to other computers.
Other examples of prior systems are those supplied by Netscape Communications, Inc. Using the Netscape Communications technology, a given machine responds to multiple IP addresses. Given a particular IP address of the set of supported IP addresses, the Netscape server looks up the corresponding web site data for that IP address. One problem with this system is that this requires each hosted site to have its own IP address. Another problem with this solution is that load balancing can only be performed on a per computer basis.
Some systems have attempted to cluster computers to act together as one hosting machine. However, scaling such systems can be difficult and load balancing is still not as effective as desired. Furthermore, the clustering process is fairly static, for example, a group of five machines would be used to support a web site. If demand for a site becomes particularly high, it is necessary to manually configure additional machines to support the site. As accesses to web sites can spike for various, sometimes unpredictable, reasons, previous cluster systems can become overloaded because of an insufficient number of computers in the cluster yet inefficiently use computer resources because there are too many computers for normal web access traffic.
Thus, what is desired is an improved technique and system for hosting Internet services.
A system for providing Internet hosting and access is described.
Some embodiments of the invention include a network of computers coupled to a database. The network of computers are also coupled to the Internet (or other communications network). The network of computers each have access to a fast shared memory. The fast shared memory includes some of the information in the database. The contents of the fast shared memory are synchronized between the machines. Using this structure, various computers in the network can act together to share Internet protocol addresses among the various web sites, or other Internet services, supported by the network of computers. Load balancing between the various computers can be dynamically performed.
The computers in the network can be configured based on information stored in the database, or the fast shared memory. For example, the configuration information might include the location of files for a web site as well as a list of supported services. This enables the configuration data to be used to dynamically configure the computers. A computer X in the network might be providing web services for a hosted domain xe2x80x9ctest.comxe2x80x9d and simultaneously provide web and other services for other hosted domains. This sort of flexibility allows the network of computers to react quickly to high demand.
For example, many web sites have experienced overwhelming volume when a news story broke. Using some embodiments of this invention, a news organization could host its web sites on the network of computers. Dynamically, as more requests for the hosted web site reach the network of computes, more computing resources in the network will be allocated to the hosted site.
Also, the configuration information can selectively limit access to services. For example, a hosted web site might be limited to certain clients. The hosting and access descriptors stored in the database can support these limits. One embodiment uses access control lists to control access to the hosted services.
Also, the configuration information can include quota information. For example, the quota could limit the amount of disk space used or the total amount of bandwidth used at a given time, or per month. This allows the hosting ISP to control the usage of the network of computers.
In some embodiments, the network of computers support administrative functions and clustered hosting functions. In some embodiments, the administrative functions include domain name services (DNS). The DNS services allow for account hosting that is independent of the domain name used. One technique used is to support virtual IP addresses. A second technique is to support phantom IP addresses. Through the use of a host name information, many domains are supported by the same IP address. The DNS then differentiates between the various domains using the host name information. The clustered hosting functions provide the actual hosting of the various web sites, and other services.
Although many details have been included in the description and the figures, the invention is defined by the scope of the claims. Only limitations found in those claims apply to the invention.